var calcAdd = function (a, b) { //函数声明A+B 
    var aroot = a + "", broot = b + ""; //字符串化
    var as = aroot.split("."), bs = broot.split("."); //切割
    var afc = 0, bfc = 0; //定义默认值 A因子 B因子 factor
    var ret; //返回值
    try { //容错处理
        afc = as[1].length;//确定小数点后长度位
        bfc = bs[1].length;//同上
    } catch (e) { }//容错处理 但是缺省值上面生命已经包含 不需要catch后续处理 
    //   console.log(afc,bfc);//测试打印 因兼容IE8相关业务系统匀速选需要考虑 注释了部分代码 请无视
    ret = (Number(aroot.replace(".", "")) * Math.pow(10, bfc) + Number(broot.replace(".", "")) * Math.pow(10, afc)) + "";
    //将小数点去掉 然后将上文中获取的 小数后精度 作为10的乘方加入乘法 注意考虑数值大小问题是否超过js能处理的最大值
    return Number(ret.substr(0, ret.length - afc - bfc) + "." + ret.substr(ret.length - afc - bfc, ret.length));
    //将上述结果的小数点 按照上文获取的小数后精度 从后向前 增加小数点 同时将字符串数值化 
}

console.log(calcAdd(0.1, 0.2222)); // 0.3222
